// pages/publish/publish.js
const db = wx.cloud.database();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    multiArray: [
      ['卡片、证件类', '生活用品', '数码产品', '美妆护肤类', '衣服物品类', '饰品', '文娱', '其它'],
      ['身份证', '校园卡', '学生证', '水卡', '公交卡', '银行卡', '其它'],
    ],
    pickerList: [
      ['身份证', '校园卡', '学生证', '水卡', '公交卡', '银行卡', '其它'],
      ['水杯', '雨伞', '小风扇', '钥匙/钥匙扣', '其它'],
      ['手机', '相机', 'U盘', '充电宝', '平板电脑', '鼠标', '充电线', '耳机', '手写笔', '支架', '音箱', 'mp3', '其它'],
      ['口红', '粉底', '眉笔', '腮红', '眼影', '防晒', '喷雾', '香水', '其它'],
      ['男装', '女装', '男鞋', '女鞋', '包包', '其它'],
      ['手表', '项链', '手链', '戒指', '耳饰', '眼睛', '帽子', '发饰', '其它'],
      ['教材', '笔记', '文具', '球拍/球', '护具', '跳绳', '自行车', '棋牌', '其它'],
      ['药品', '零食', '周边', '其它']
    ],
    multiIndex: [0, 0],
    select: false,
    name: '',
    date: '',
    region: '',
    phone: '',
    desc: '',
    imgList: [],
    type: ''
  },

  toPublish() {
    const {
      type,
      multiArray,
      multiIndex,
      name,
      date,
      region,
      phone,
      desc,
      imgList,
      select
    } = this.data;
    if(!type || !select || !name || !date || !region || !phone){
      wx.showToast({
        title: '未填写必填项',
        icon: 'none',
      });
      return;
    }
    db.collection('publish').add({
      data: {
        type,
        classify1: multiArray[0][multiIndex[0]],
        classify2: multiArray[1][multiIndex[1]],
        name,
        date,
        region,
        phone,
        desc,
        imgList,
        time: new Date().getTime()
      },
      success: (res) => {
        console.log(res);
        wx.showToast({
          icon: 'none',
          title: '发布成功',
          duration: 1500,
          success: () => {
            setTimeout(() => {
              wx.switchTab({
                url: '../index/index',
              })
            }, 1500);
          }
        })

      }
    })

  },

  selectType(e) {
    const {
      id
    } = e.currentTarget.dataset;
    this.setData({
      type: id
    })
  },

  deleteImg(e) {
    let {
      index
    } = e.currentTarget.dataset;
    let {
      imgList
    } = this.data;
    imgList.splice(index, 1);

    this.setData({
      imgList
    })
  },

  deleteDesc() {
    this.setData({
      desc: ''
    })
  },

  uploadImg() {
    let {
      imgList
    } = this.data;
    wx.chooseMedia({
      count: 6 - imgList.length,
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        const {
          tempFiles
        } = res;

        tempFiles.forEach(item => {
          wx.showLoading({
            title: '上传中',
          })
          // 将图片上传至云存储空间
          wx.cloud.uploadFile({
            // 指定上传到的云路径
            cloudPath: `publish/${Math.floor(Math.random() * 10000)}-${new Date().getTime()}`,
            // 指定要上传的文件的小程序临时文件路径
            filePath: item.tempFilePath,
            // 成功回调
            success: res => {
              console.log('上传成功', res)
              imgList.unshift(res.fileID);

              this.setData({
                imgList
              })
              wx.hideLoading();
            },
          })
        })
      }
    })
  },

  getName(e) {
    this.setData({
      name: e.detail.value
    })
  },

  getDate(e) {
    this.setData({
      date: e.detail.value
    })
  },

  getRegion(e) {
    this.setData({
      region: e.detail.value
    })
  },

  getPhone(e) {
    this.setData({
      phone: e.detail.value
    })
  },

  getDesc(e) {
    this.setData({
      desc: e.detail.value
    })
  },

  closeSelect() {
    this.setData({
      select: false,
      multiIndex: [0, 0],
    })
  },

  bindMultiPickerChange(e) {
    this.setData({
      select: true
    })
  },

  bindMultiPickerColumnChange(e) {
    let {
      column,
      value
    } = e.detail;
    let data = this.data;
    let {
      multiArray,
      pickerList
    } = this.data;
    if (column === 0) {
      // 替换展示的数据源
      multiArray[1] = pickerList[value];
    }
    data.multiArray = multiArray;
    data.multiIndex[column] = value;
    this.setData(data);
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})